错误信息
验证规则的错误提示信息有三种方式可以定义,如下:
使用默认的错误提示信息
如果没有定义任何的验证提示信息,系统会显示默认的错误信息,例如:
namespace app\index\validate;use think\Validate;class User extends Validate{protected $rule = ['name' => 'require|max:25','age' => 'number|between:1,120','email' => 'email',];}$data = ['name' => 'thinkphp','age' => 121,'email' => 'thinkphp@qq.com',];$validate = new \app\index\validate\User;$result = $validate->check($data);if(!$result){echo $validate->getError();}
会输出 age只能在 1 - 120 之间。
可以给age字段设置中文名,例如:
namespace app\index\validate;use think\Validate;class User extends Validate{protected $rule = ['name' => 'require|max:25','age|年龄' => 'number|between:1,120','email' => 'email',];}
会输出 年龄只能在 1 - 120 之间。
单独定义提示信息
如果要输出自定义的错误信息,有两种方式可以设置。下面的一种方式是验证规则和提示信息分开定义:
namespace app\index\validate;use think\Validate;class User extends Validate{protected $rule = ['name' => 'require|max:25','age' => 'number|between:1,120','email' => 'email',];protected $message = ['name.require' => '名称必须','name.max' => '名称最多不能超过25个字符','age.number' => '年龄必须是数字','age.between' => '年龄必须在1~120之间','email' => '邮箱格式错误',];}$data = ['name' => 'thinkphp','age' => 121,'email' => 'thinkphp@qq.com',];$validate = new \app\index\validate\User;$result = $validate->check($data);if(!$result){echo $validate->getError();}
会输出 年龄必须在1~120之间。
使用多语言
5.1的验证信息提示支持多语言功能,你只需要给相关错误提示信息定义语言包,例如:
namespace app\index\validate;use think\Validate;class User extends Validate{protected $rule = ['name' => 'require|max:25','age' => 'number|between:1,120','email' => 'email',];protected $message = ['name.require' => 'name_require','name.max' => 'name_max','age.number' => 'age_number','age.between' => 'age_between','email' => 'email_error',];}
你可以在语言包文件中添加下列定义:
'name_require ' => '姓名必须','name_max' => '姓名最大长度不超过25个字符','age_between' => '年龄必须在1~120之间','age_number' => '年龄必须是数字','email_error' => '邮箱格式错误',
系统内置的验证错误提示均支持多语言(参考框架目录下的
lang/zh-cn.php语言定义文件)。